
/**
 *  Universidad del Valle de Guatemala
 *  Sección 20 Algoritmos y Estructuras de Datos
 *  Rudy Hernandez
 *  Diego Garcia
 *  Rodrigo Avelar 
 *  Esta es la interfaz a utilizar para la implementación de la simulación de
 *      un radio.
 */
public interface Radio {
    /*Constantes utiles para el radio*/    
    static final int AM_MIN = 530;
    static final int AM_MAX = 1610;
    static final int AM_D   = 10;
    
    static final float FM_MIN = 87.9f;
    static final float FM_MAX = 107.9f;
    static final float FM_D   = 0.2f;    
    /*Metodos para operar la radio*/
    
    /**
     * Enciende o apaga el Radio
     */
    public void onOff();
    
    /**
     * Cambia la banda entre am/fm
     */
    public void cambiarBanda();
    
    /**
     * Aumenta la frecuencia en el delta correspondiente a la banda
     * Cuando llega al maximo debera regresar a la fercuencia minima para la banda
     */
    public void cambiarFrecuencia();
    
    /**
     * Guarda la frecuencia seleccionada en el boton pasado como argumento
     * @param boton
     */
    public void guardarEstacion(int boton);
    
    /**
     * Cambia la frecuencia seleccionada a la frecuencia guardada
     * en el boton pasado como argumento
     * @param boton 
     */
    public void seleccionarEstacion(int boton);
    
    /**
     * 
     * @return Frecuencia seleccionada actualmente
     */
    public float getFrecuencia();
    
    /**
     * 
     * @return True si el radio estÃ¡ encendido, false de lo contrario.
     */
    public boolean isOn();
    
    /**
     * 
     * @return True si la banda seleccionada es AM, False de lo contrario
     */
    public boolean isAM();
    
    /**
     * 
     * @return True si la banda seleccionada es FM, False de lo contrario
     */
    public boolean isFM();
}
